package org.linlinjava.litemall.db.domain;

import org.linlinjava.litemall.db.util.OrderConstant;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;

public class LitemallOrder {

    public static final Boolean IS_DELETED = Deleted.IS_DELETED.value();
    public static final Boolean NOT_DELETED = Deleted.NOT_DELETED.value();
    private Integer id;
    private Integer userId;
    private String orderSn;
    private Short orderStatus;
    private String address;
    private String mobile;
    private String consignee;
    private String message;
    private BigDecimal goodsPrice;
    private BigDecimal freightPrice;
    private BigDecimal couponPrice;
    private BigDecimal integralPrice;
    private BigDecimal grouponPrice;
    private BigDecimal orderPrice;
    private BigDecimal actualPrice;
    private String payId;
    private LocalDateTime payTime;
    private String shipSn;
    private String shipChannel;
    private LocalDateTime shipTime;
    private LocalDateTime confirmTime;
    private Short comments;
    private LocalDateTime endTime;
    private LocalDateTime addTime;
    private LocalDateTime updateTime;
    private Boolean deleted;
    private Short promiseDate;
    private Integer brandId;
    private String invoiceTitle;
    private String statusName;
    private String invoiceNo;
    private String invoiceAddress;
    private String invoicePhone;
    private String invoiceBank;
    private String invoiceAccount;
    private String invoiceType;
    private String mail;
    private LocalDateTime promiseTime;

    private Map<String, Object> detailInfo;
    public Map<String, Object> getDetailInfo() {
        return detailInfo;
    }
    public void setDetailInfo(Map<String, Object> detailInfo) {
        this.detailInfo = detailInfo;
    }
    public String getStatusName() {
        return statusName;
    }
    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }
    public void setStatusName() {
        this.statusName = OrderConstant.NAME_MAP.get(this.orderStatus);
    }
    private LocalDateTime payCreateTime;
    private String payCertificate;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public String getOrderSn() {
        return orderSn;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.order_sn
     *
     * @param orderSn the value for litemall_order.order_sn
     *
     * @mbg.generated
     */
    public void setOrderSn(String orderSn) {
        this.orderSn = orderSn;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.order_status
     *
     * @return the value of litemall_order.order_status
     *
     * @mbg.generated
     */
    public Short getOrderStatus() {
        return orderStatus;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.order_status
     *
     * @param orderStatus the value for litemall_order.order_status
     *
     * @mbg.generated
     */
    public void setOrderStatus(Short orderStatus) {
        this.orderStatus = orderStatus;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.address
     *
     * @return the value of litemall_order.address
     *
     * @mbg.generated
     */
    public String getAddress() {
        return address;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.address
     *
     * @param address the value for litemall_order.address
     *
     * @mbg.generated
     */
    public void setAddress(String address) {
        this.address = address;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.mobile
     *
     * @return the value of litemall_order.mobile
     *
     * @mbg.generated
     */
    public String getMobile() {
        return mobile;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.mobile
     *
     * @param mobile the value for litemall_order.mobile
     *
     * @mbg.generated
     */
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.consignee
     *
     * @return the value of litemall_order.consignee
     *
     * @mbg.generated
     */
    public String getConsignee() {
        return consignee;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.consignee
     *
     * @param consignee the value for litemall_order.consignee
     *
     * @mbg.generated
     */
    public void setConsignee(String consignee) {
        this.consignee = consignee;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.message
     *
     * @return the value of litemall_order.message
     *
     * @mbg.generated
     */
    public String getMessage() {
        return message;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.message
     *
     * @param message the value for litemall_order.message
     *
     * @mbg.generated
     */
    public void setMessage(String message) {
        this.message = message;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.goods_price
     *
     * @return the value of litemall_order.goods_price
     *
     * @mbg.generated
     */
    public BigDecimal getGoodsPrice() {
        return goodsPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.goods_price
     *
     * @param goodsPrice the value for litemall_order.goods_price
     *
     * @mbg.generated
     */
    public void setGoodsPrice(BigDecimal goodsPrice) {
        this.goodsPrice = goodsPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.freight_price
     *
     * @return the value of litemall_order.freight_price
     *
     * @mbg.generated
     */
    public BigDecimal getFreightPrice() {
        return freightPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.freight_price
     *
     * @param freightPrice the value for litemall_order.freight_price
     *
     * @mbg.generated
     */
    public void setFreightPrice(BigDecimal freightPrice) {
        this.freightPrice = freightPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.coupon_price
     *
     * @return the value of litemall_order.coupon_price
     *
     * @mbg.generated
     */
    public BigDecimal getCouponPrice() {
        return couponPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.coupon_price
     *
     * @param couponPrice the value for litemall_order.coupon_price
     *
     * @mbg.generated
     */
    public void setCouponPrice(BigDecimal couponPrice) {
        this.couponPrice = couponPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.integral_price
     *
     * @return the value of litemall_order.integral_price
     *
     * @mbg.generated
     */
    public BigDecimal getIntegralPrice() {
        return integralPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.integral_price
     *
     * @param integralPrice the value for litemall_order.integral_price
     *
     * @mbg.generated
     */
    public void setIntegralPrice(BigDecimal integralPrice) {
        this.integralPrice = integralPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.groupon_price
     *
     * @return the value of litemall_order.groupon_price
     *
     * @mbg.generated
     */
    public BigDecimal getGrouponPrice() {
        return grouponPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.groupon_price
     *
     * @param grouponPrice the value for litemall_order.groupon_price
     *
     * @mbg.generated
     */
    public void setGrouponPrice(BigDecimal grouponPrice) {
        this.grouponPrice = grouponPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.order_price
     *
     * @return the value of litemall_order.order_price
     *
     * @mbg.generated
     */
    public BigDecimal getOrderPrice() {
        return orderPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.order_price
     *
     * @param orderPrice the value for litemall_order.order_price
     *
     * @mbg.generated
     */
    public void setOrderPrice(BigDecimal orderPrice) {
        this.orderPrice = orderPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.actual_price
     *
     * @return the value of litemall_order.actual_price
     *
     * @mbg.generated
     */
    public BigDecimal getActualPrice() {
        return actualPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.actual_price
     *
     * @param actualPrice the value for litemall_order.actual_price
     *
     * @mbg.generated
     */
    public void setActualPrice(BigDecimal actualPrice) {
        this.actualPrice = actualPrice;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.pay_id
     *
     * @return the value of litemall_order.pay_id
     *
     * @mbg.generated
     */
    public String getPayId() {
        return payId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.pay_id
     *
     * @param payId the value for litemall_order.pay_id
     *
     * @mbg.generated
     */
    public void setPayId(String payId) {
        this.payId = payId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.pay_time
     *
     * @return the value of litemall_order.pay_time
     *
     * @mbg.generated
     */
    public LocalDateTime getPayTime() {
        return payTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.pay_time
     *
     * @param payTime the value for litemall_order.pay_time
     *
     * @mbg.generated
     */
    public void setPayTime(LocalDateTime payTime) {
        this.payTime = payTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.ship_sn
     *
     * @return the value of litemall_order.ship_sn
     *
     * @mbg.generated
     */
    public String getShipSn() {
        return shipSn;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.ship_sn
     *
     * @param shipSn the value for litemall_order.ship_sn
     *
     * @mbg.generated
     */
    public void setShipSn(String shipSn) {
        this.shipSn = shipSn;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.ship_channel
     *
     * @return the value of litemall_order.ship_channel
     *
     * @mbg.generated
     */
    public String getShipChannel() {
        return shipChannel;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.ship_channel
     *
     * @param shipChannel the value for litemall_order.ship_channel
     *
     * @mbg.generated
     */
    public void setShipChannel(String shipChannel) {
        this.shipChannel = shipChannel;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.ship_time
     *
     * @return the value of litemall_order.ship_time
     *
     * @mbg.generated
     */
    public LocalDateTime getShipTime() {
        return shipTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.ship_time
     *
     * @param shipTime the value for litemall_order.ship_time
     *
     * @mbg.generated
     */
    public void setShipTime(LocalDateTime shipTime) {
        this.shipTime = shipTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.confirm_time
     *
     * @return the value of litemall_order.confirm_time
     *
     * @mbg.generated
     */
    public LocalDateTime getConfirmTime() {
        return confirmTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.confirm_time
     *
     * @param confirmTime the value for litemall_order.confirm_time
     *
     * @mbg.generated
     */
    public void setConfirmTime(LocalDateTime confirmTime) {
        this.confirmTime = confirmTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.comments
     *
     * @return the value of litemall_order.comments
     *
     * @mbg.generated
     */
    public Short getComments() {
        return comments;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.comments
     *
     * @param comments the value for litemall_order.comments
     *
     * @mbg.generated
     */
    public void setComments(Short comments) {
        this.comments = comments;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.end_time
     *
     * @return the value of litemall_order.end_time
     *
     * @mbg.generated
     */
    public LocalDateTime getEndTime() {
        return endTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.end_time
     *
     * @param endTime the value for litemall_order.end_time
     *
     * @mbg.generated
     */
    public void setEndTime(LocalDateTime endTime) {
        this.endTime = endTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.add_time
     *
     * @return the value of litemall_order.add_time
     *
     * @mbg.generated
     */
    public LocalDateTime getAddTime() {
        return addTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.add_time
     *
     * @param addTime the value for litemall_order.add_time
     *
     * @mbg.generated
     */
    public void setAddTime(LocalDateTime addTime) {
        this.addTime = addTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.update_time
     *
     * @return the value of litemall_order.update_time
     *
     * @mbg.generated
     */
    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.update_time
     *
     * @param updateTime the value for litemall_order.update_time
     *
     * @mbg.generated
     */
    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table litemall_order
     *
     * @mbg.generated
     */
    public void andLogicalDeleted(boolean deleted) {
        setDeleted(deleted ? Deleted.IS_DELETED.value() : Deleted.NOT_DELETED.value());
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.deleted
     *
     * @return the value of litemall_order.deleted
     *
     * @mbg.generated
     */
    public Boolean getDeleted() {
        return deleted;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.deleted
     *
     * @param deleted the value for litemall_order.deleted
     *
     * @mbg.generated
     */
    public void setDeleted(Boolean deleted) {
        this.deleted = deleted;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.promise_date
     *
     * @return the value of litemall_order.promise_date
     *
     * @mbg.generated
     */
    public Short getPromiseDate() {
        return promiseDate;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.promise_date
     *
     * @param promiseDate the value for litemall_order.promise_date
     *
     * @mbg.generated
     */
    public void setPromiseDate(Short promiseDate) {
        this.promiseDate = promiseDate;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.brand_id
     *
     * @return the value of litemall_order.brand_id
     *
     * @mbg.generated
     */
    public Integer getBrandId() {
        return brandId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.brand_id
     *
     * @param brandId the value for litemall_order.brand_id
     *
     * @mbg.generated
     */
    public void setBrandId(Integer brandId) {
        this.brandId = brandId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.invoice_title
     *
     * @return the value of litemall_order.invoice_title
     *
     * @mbg.generated
     */
    public String getInvoiceTitle() {
        return invoiceTitle;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.invoice_title
     *
     * @param invoiceTitle the value for litemall_order.invoice_title
     *
     * @mbg.generated
     */
    public void setInvoiceTitle(String invoiceTitle) {
        this.invoiceTitle = invoiceTitle;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.invoice_no
     *
     * @return the value of litemall_order.invoice_no
     *
     * @mbg.generated
     */
    public String getInvoiceNo() {
        return invoiceNo;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.invoice_no
     *
     * @param invoiceNo the value for litemall_order.invoice_no
     *
     * @mbg.generated
     */
    public void setInvoiceNo(String invoiceNo) {
        this.invoiceNo = invoiceNo;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.invoice_address
     *
     * @return the value of litemall_order.invoice_address
     *
     * @mbg.generated
     */
    public String getInvoiceAddress() {
        return invoiceAddress;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.invoice_address
     *
     * @param invoiceAddress the value for litemall_order.invoice_address
     *
     * @mbg.generated
     */
    public void setInvoiceAddress(String invoiceAddress) {
        this.invoiceAddress = invoiceAddress;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.invoice_phone
     *
     * @return the value of litemall_order.invoice_phone
     *
     * @mbg.generated
     */
    public String getInvoicePhone() {
        return invoicePhone;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.invoice_phone
     *
     * @param invoicePhone the value for litemall_order.invoice_phone
     *
     * @mbg.generated
     */
    public void setInvoicePhone(String invoicePhone) {
        this.invoicePhone = invoicePhone;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.invoice_bank
     *
     * @return the value of litemall_order.invoice_bank
     *
     * @mbg.generated
     */
    public String getInvoiceBank() {
        return invoiceBank;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.invoice_bank
     *
     * @param invoiceBank the value for litemall_order.invoice_bank
     *
     * @mbg.generated
     */
    public void setInvoiceBank(String invoiceBank) {
        this.invoiceBank = invoiceBank;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.invoice_account
     *
     * @return the value of litemall_order.invoice_account
     *
     * @mbg.generated
     */
    public String getInvoiceAccount() {
        return invoiceAccount;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.invoice_account
     *
     * @param invoiceAccount the value for litemall_order.invoice_account
     *
     * @mbg.generated
     */
    public void setInvoiceAccount(String invoiceAccount) {
        this.invoiceAccount = invoiceAccount;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.invoice_type
     *
     * @return the value of litemall_order.invoice_type
     *
     * @mbg.generated
     */
    public String getInvoiceType() {
        return invoiceType;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.invoice_type
     *
     * @param invoiceType the value for litemall_order.invoice_type
     *
     * @mbg.generated
     */
    public void setInvoiceType(String invoiceType) {
        this.invoiceType = invoiceType;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.mail
     *
     * @return the value of litemall_order.mail
     *
     * @mbg.generated
     */
    public String getMail() {
        return mail;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.mail
     *
     * @param mail the value for litemall_order.mail
     *
     * @mbg.generated
     */
    public void setMail(String mail) {
        this.mail = mail;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.promise_time
     *
     * @return the value of litemall_order.promise_time
     *
     * @mbg.generated
     */
    public LocalDateTime getPromiseTime() {
        return promiseTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.promise_time
     *
     * @param promiseTime the value for litemall_order.promise_time
     *
     * @mbg.generated
     */
    public void setPromiseTime(LocalDateTime promiseTime) {
        this.promiseTime = promiseTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.pay_create_time
     *
     * @return the value of litemall_order.pay_create_time
     *
     * @mbg.generated
     */
    public LocalDateTime getPayCreateTime() {
        return payCreateTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.pay_create_time
     *
     * @param payCreateTime the value for litemall_order.pay_create_time
     *
     * @mbg.generated
     */
    public void setPayCreateTime(LocalDateTime payCreateTime) {
        this.payCreateTime = payCreateTime;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column litemall_order.pay_certificate
     *
     * @return the value of litemall_order.pay_certificate
     *
     * @mbg.generated
     */
    public String getPayCertificate() {
        return payCertificate;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column litemall_order.pay_certificate
     *
     * @param payCertificate the value for litemall_order.pay_certificate
     *
     * @mbg.generated
     */
    public void setPayCertificate(String payCertificate) {
        this.payCertificate = payCertificate;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table litemall_order
     *
     * @mbg.generated
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", IS_DELETED=").append(IS_DELETED);
        sb.append(", NOT_DELETED=").append(NOT_DELETED);
        sb.append(", id=").append(id);
        sb.append(", userId=").append(userId);
        sb.append(", orderSn=").append(orderSn);
        sb.append(", orderStatus=").append(orderStatus);
        sb.append(", address=").append(address);
        sb.append(", mobile=").append(mobile);
        sb.append(", consignee=").append(consignee);
        sb.append(", message=").append(message);
        sb.append(", goodsPrice=").append(goodsPrice);
        sb.append(", freightPrice=").append(freightPrice);
        sb.append(", couponPrice=").append(couponPrice);
        sb.append(", integralPrice=").append(integralPrice);
        sb.append(", grouponPrice=").append(grouponPrice);
        sb.append(", orderPrice=").append(orderPrice);
        sb.append(", actualPrice=").append(actualPrice);
        sb.append(", payId=").append(payId);
        sb.append(", payTime=").append(payTime);
        sb.append(", shipSn=").append(shipSn);
        sb.append(", shipChannel=").append(shipChannel);
        sb.append(", shipTime=").append(shipTime);
        sb.append(", confirmTime=").append(confirmTime);
        sb.append(", comments=").append(comments);
        sb.append(", endTime=").append(endTime);
        sb.append(", addTime=").append(addTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", deleted=").append(deleted);
        sb.append(", promiseDate=").append(promiseDate);
        sb.append(", brandId=").append(brandId);
        sb.append(", invoiceTitle=").append(invoiceTitle);
        sb.append(", invoiceNo=").append(invoiceNo);
        sb.append(", invoiceAddress=").append(invoiceAddress);
        sb.append(", invoicePhone=").append(invoicePhone);
        sb.append(", invoiceBank=").append(invoiceBank);
        sb.append(", invoiceAccount=").append(invoiceAccount);
        sb.append(", invoiceType=").append(invoiceType);
        sb.append(", mail=").append(mail);
        sb.append(", promiseTime=").append(promiseTime);
        sb.append(", payCreateTime=").append(payCreateTime);
        sb.append(", payCertificate=").append(payCertificate);
        sb.append("]");
        return sb.toString();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table litemall_order
     *
     * @mbg.generated
     */
    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        LitemallOrder other = (LitemallOrder) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
            && (this.getOrderSn() == null ? other.getOrderSn() == null : this.getOrderSn().equals(other.getOrderSn()))
            && (this.getOrderStatus() == null ? other.getOrderStatus() == null : this.getOrderStatus().equals(other.getOrderStatus()))
            && (this.getAddress() == null ? other.getAddress() == null : this.getAddress().equals(other.getAddress()))
            && (this.getMobile() == null ? other.getMobile() == null : this.getMobile().equals(other.getMobile()))
            && (this.getConsignee() == null ? other.getConsignee() == null : this.getConsignee().equals(other.getConsignee()))
            && (this.getMessage() == null ? other.getMessage() == null : this.getMessage().equals(other.getMessage()))
            && (this.getGoodsPrice() == null ? other.getGoodsPrice() == null : this.getGoodsPrice().equals(other.getGoodsPrice()))
            && (this.getFreightPrice() == null ? other.getFreightPrice() == null : this.getFreightPrice().equals(other.getFreightPrice()))
            && (this.getCouponPrice() == null ? other.getCouponPrice() == null : this.getCouponPrice().equals(other.getCouponPrice()))
            && (this.getIntegralPrice() == null ? other.getIntegralPrice() == null : this.getIntegralPrice().equals(other.getIntegralPrice()))
            && (this.getGrouponPrice() == null ? other.getGrouponPrice() == null : this.getGrouponPrice().equals(other.getGrouponPrice()))
            && (this.getOrderPrice() == null ? other.getOrderPrice() == null : this.getOrderPrice().equals(other.getOrderPrice()))
            && (this.getActualPrice() == null ? other.getActualPrice() == null : this.getActualPrice().equals(other.getActualPrice()))
            && (this.getPayId() == null ? other.getPayId() == null : this.getPayId().equals(other.getPayId()))
            && (this.getPayTime() == null ? other.getPayTime() == null : this.getPayTime().equals(other.getPayTime()))
            && (this.getShipSn() == null ? other.getShipSn() == null : this.getShipSn().equals(other.getShipSn()))
            && (this.getShipChannel() == null ? other.getShipChannel() == null : this.getShipChannel().equals(other.getShipChannel()))
            && (this.getShipTime() == null ? other.getShipTime() == null : this.getShipTime().equals(other.getShipTime()))
            && (this.getConfirmTime() == null ? other.getConfirmTime() == null : this.getConfirmTime().equals(other.getConfirmTime()))
            && (this.getComments() == null ? other.getComments() == null : this.getComments().equals(other.getComments()))
            && (this.getEndTime() == null ? other.getEndTime() == null : this.getEndTime().equals(other.getEndTime()))
            && (this.getAddTime() == null ? other.getAddTime() == null : this.getAddTime().equals(other.getAddTime()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getDeleted() == null ? other.getDeleted() == null : this.getDeleted().equals(other.getDeleted()))
            && (this.getPromiseDate() == null ? other.getPromiseDate() == null : this.getPromiseDate().equals(other.getPromiseDate()))
            && (this.getBrandId() == null ? other.getBrandId() == null : this.getBrandId().equals(other.getBrandId()))
            && (this.getInvoiceTitle() == null ? other.getInvoiceTitle() == null : this.getInvoiceTitle().equals(other.getInvoiceTitle()))
            && (this.getInvoiceNo() == null ? other.getInvoiceNo() == null : this.getInvoiceNo().equals(other.getInvoiceNo()))
            && (this.getInvoiceAddress() == null ? other.getInvoiceAddress() == null : this.getInvoiceAddress().equals(other.getInvoiceAddress()))
            && (this.getInvoicePhone() == null ? other.getInvoicePhone() == null : this.getInvoicePhone().equals(other.getInvoicePhone()))
            && (this.getInvoiceBank() == null ? other.getInvoiceBank() == null : this.getInvoiceBank().equals(other.getInvoiceBank()))
            && (this.getInvoiceAccount() == null ? other.getInvoiceAccount() == null : this.getInvoiceAccount().equals(other.getInvoiceAccount()))
            && (this.getInvoiceType() == null ? other.getInvoiceType() == null : this.getInvoiceType().equals(other.getInvoiceType()))
            && (this.getMail() == null ? other.getMail() == null : this.getMail().equals(other.getMail()))
            && (this.getPromiseTime() == null ? other.getPromiseTime() == null : this.getPromiseTime().equals(other.getPromiseTime()))
            && (this.getPayCreateTime() == null ? other.getPayCreateTime() == null : this.getPayCreateTime().equals(other.getPayCreateTime()))
            && (this.getPayCertificate() == null ? other.getPayCertificate() == null : this.getPayCertificate().equals(other.getPayCertificate()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
        result = prime * result + ((getOrderSn() == null) ? 0 : getOrderSn().hashCode());
        result = prime * result + ((getOrderStatus() == null) ? 0 : getOrderStatus().hashCode());
        result = prime * result + ((getAddress() == null) ? 0 : getAddress().hashCode());
        result = prime * result + ((getMobile() == null) ? 0 : getMobile().hashCode());
        result = prime * result + ((getConsignee() == null) ? 0 : getConsignee().hashCode());
        result = prime * result + ((getMessage() == null) ? 0 : getMessage().hashCode());
        result = prime * result + ((getGoodsPrice() == null) ? 0 : getGoodsPrice().hashCode());
        result = prime * result + ((getFreightPrice() == null) ? 0 : getFreightPrice().hashCode());
        result = prime * result + ((getCouponPrice() == null) ? 0 : getCouponPrice().hashCode());
        result = prime * result + ((getIntegralPrice() == null) ? 0 : getIntegralPrice().hashCode());
        result = prime * result + ((getGrouponPrice() == null) ? 0 : getGrouponPrice().hashCode());
        result = prime * result + ((getOrderPrice() == null) ? 0 : getOrderPrice().hashCode());
        result = prime * result + ((getActualPrice() == null) ? 0 : getActualPrice().hashCode());
        result = prime * result + ((getPayId() == null) ? 0 : getPayId().hashCode());
        result = prime * result + ((getPayTime() == null) ? 0 : getPayTime().hashCode());
        result = prime * result + ((getShipSn() == null) ? 0 : getShipSn().hashCode());
        result = prime * result + ((getShipChannel() == null) ? 0 : getShipChannel().hashCode());
        result = prime * result + ((getShipTime() == null) ? 0 : getShipTime().hashCode());
        result = prime * result + ((getConfirmTime() == null) ? 0 : getConfirmTime().hashCode());
        result = prime * result + ((getComments() == null) ? 0 : getComments().hashCode());
        result = prime * result + ((getEndTime() == null) ? 0 : getEndTime().hashCode());
        result = prime * result + ((getAddTime() == null) ? 0 : getAddTime().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getDeleted() == null) ? 0 : getDeleted().hashCode());
        result = prime * result + ((getPromiseDate() == null) ? 0 : getPromiseDate().hashCode());
        result = prime * result + ((getBrandId() == null) ? 0 : getBrandId().hashCode());
        result = prime * result + ((getInvoiceTitle() == null) ? 0 : getInvoiceTitle().hashCode());
        result = prime * result + ((getInvoiceNo() == null) ? 0 : getInvoiceNo().hashCode());
        result = prime * result + ((getInvoiceAddress() == null) ? 0 : getInvoiceAddress().hashCode());
        result = prime * result + ((getInvoicePhone() == null) ? 0 : getInvoicePhone().hashCode());
        result = prime * result + ((getInvoiceBank() == null) ? 0 : getInvoiceBank().hashCode());
        result = prime * result + ((getInvoiceAccount() == null) ? 0 : getInvoiceAccount().hashCode());
        result = prime * result + ((getInvoiceType() == null) ? 0 : getInvoiceType().hashCode());
        result = prime * result + ((getMail() == null) ? 0 : getMail().hashCode());
        result = prime * result + ((getPromiseTime() == null) ? 0 : getPromiseTime().hashCode());
        result = prime * result + ((getPayCreateTime() == null) ? 0 : getPayCreateTime().hashCode());
        result = prime * result + ((getPayCertificate() == null) ? 0 : getPayCertificate().hashCode());
        return result;
    }

    public enum Deleted {
        NOT_DELETED(new Boolean("0"), "未删除"),
        IS_DELETED(new Boolean("1"), "已删除");

        private final Boolean value;
        private final String name;
        Deleted(Boolean value, String name) {
            this.value = value;
            this.name = name;
        }
        public Boolean getValue() {
            return this.value;
        }
        public Boolean value() {
            return this.value;
        }
        public String getName() {
            return this.name;
        }
    }

    public enum Column {
        id("id", "id", "INTEGER", false),
        userId("user_id", "userId", "INTEGER", false),
        orderSn("order_sn", "orderSn", "VARCHAR", false),
        orderStatus("order_status", "orderStatus", "SMALLINT", false),
        address("address", "address", "VARCHAR", false),
        mobile("mobile", "mobile", "VARCHAR", false),
        consignee("consignee", "consignee", "VARCHAR", false),
        message("message", "message", "VARCHAR", false),
        goodsPrice("goods_price", "goodsPrice", "DECIMAL", false),
        freightPrice("freight_price", "freightPrice", "DECIMAL", false),
        couponPrice("coupon_price", "couponPrice", "DECIMAL", false),
        integralPrice("integral_price", "integralPrice", "DECIMAL", false),
        grouponPrice("groupon_price", "grouponPrice", "DECIMAL", false),
        orderPrice("order_price", "orderPrice", "DECIMAL", false),
        actualPrice("actual_price", "actualPrice", "DECIMAL", false),
        payId("pay_id", "payId", "VARCHAR", false),
        payTime("pay_time", "payTime", "TIMESTAMP", false),
        shipSn("ship_sn", "shipSn", "VARCHAR", false),
        shipChannel("ship_channel", "shipChannel", "VARCHAR", false),
        shipTime("ship_time", "shipTime", "TIMESTAMP", false),
        confirmTime("confirm_time", "confirmTime", "TIMESTAMP", false),
        comments("comments", "comments", "SMALLINT", false),
        endTime("end_time", "endTime", "TIMESTAMP", false),
        addTime("add_time", "addTime", "TIMESTAMP", false),
        updateTime("update_time", "updateTime", "TIMESTAMP", false),
        deleted("deleted", "deleted", "BIT", false),
        promiseDate("promise_date", "promiseDate", "SMALLINT", false),
        brandId("brand_id", "brandId", "INTEGER", false),
        invoiceTitle("invoice_title", "invoiceTitle", "VARCHAR", false),
        invoiceNo("invoice_no", "invoiceNo", "VARCHAR", false),
        invoiceAddress("invoice_address", "invoiceAddress", "VARCHAR", false),
        invoicePhone("invoice_phone", "invoicePhone", "VARCHAR", false),
        invoiceBank("invoice_bank", "invoiceBank", "VARCHAR", false),
        invoiceAccount("invoice_account", "invoiceAccount", "VARCHAR", false),
        invoiceType("invoice_type", "invoiceType", "VARCHAR", false),
        mail("mail", "mail", "VARCHAR", false),
        promiseTime("promise_time", "promiseTime", "TIMESTAMP", false),
        payCreateTime("pay_create_time", "payCreateTime", "TIMESTAMP", false),
        payCertificate("pay_certificate", "payCertificate", "VARCHAR", false);

        private static final String BEGINNING_DELIMITER = "`";
        private static final String ENDING_DELIMITER = "`";
        private final String column;
        private final boolean isColumnNameDelimited;
        private final String javaProperty;
        private final String jdbcType;
        public String value() {
            return this.column;
        }
        public String getValue() {
            return this.column;
        }
        public String getJavaProperty() {
            return this.javaProperty;
        }
        public String getJdbcType() {
            return this.jdbcType;
        }
        Column(String column, String javaProperty, String jdbcType, boolean isColumnNameDelimited) {
            this.column = column;
            this.javaProperty = javaProperty;
            this.jdbcType = jdbcType;
            this.isColumnNameDelimited = isColumnNameDelimited;
        }
        public String desc() {
            return this.getEscapedColumnName() + " DESC";
        }
        public String asc() {
            return this.getEscapedColumnName() + " ASC";
        }
        public static Column[] excludes(Column ... excludes) {
            ArrayList<Column> columns = new ArrayList<>(Arrays.asList(Column.values()));
            if (excludes != null && excludes.length > 0) {
                columns.removeAll(new ArrayList<>(Arrays.asList(excludes)));
            }
            return columns.toArray(new Column[]{});
        }
        public String getEscapedColumnName() {
            if (this.isColumnNameDelimited) {
                return new StringBuilder().append(BEGINNING_DELIMITER).append(this.column).append(ENDING_DELIMITER).toString();
            } else {
                return this.column;
            }
        }
        public String getAliasedEscapedColumnName() {
            return this.getEscapedColumnName();
        }
    }

    public void secret() {
        this.id =             null;
        this.userId =         null;
        this.orderStatus =    null;
        this.address =        null;
        this.mobile =         null;
        this.consignee =      null;
        this.message =        null;
        this.goodsPrice =     null;
        this.freightPrice =   null;
        this.couponPrice =    null;
        this.integralPrice =  null;
        this.grouponPrice =   null;
        this.orderPrice =     null;
        this.payId =          null;
        this.shipSn =         null;
        this.shipChannel =    null;
        this.comments =       null;
        this.updateTime =     null;
        this.deleted =        null;
        this.promiseDate =    null;
        this.invoiceTitle =    null;
        this.statusName =     null;
        this.invoiceNo =      null;
        this.invoiceAddress = null;
        this.invoicePhone =   null;
        this.invoiceBank =    null;
        this.invoiceAccount = null;
        this.invoiceType =    null;
        this.mail =           null;
        this.promiseTime =    null;
        this.payCreateTime =  null;
        this.payCertificate = null;
    }
}